package com.itheima.day08;

import com.itheima.domain.Student;
import com.itheima.util.RandomUtil;

import java.util.ArrayList;

/*
男生和女生各自有多少人？    可以
00后有多少人？    可以
名字长度是2的学生有多少人？ 可以
名字长度是3的学生有多少人？ 可以
姓张的同学有多少人？  可以

手机号中至少包含2个6的有哪些？  可以

手机号中至少包含1个6和1个8的有哪些？  可以
有2个的微信号的人个数  可以
有1个的微信号的人个数   可以
 */
public class Demo03 {


    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        for (int i = 0; i < 40; i++) {
            Student student = new Student();
            if (i < 9) {

                student.setSid("000" + (i + 1));
            } else {
                student.setSid("00" + (i + 1));
            }
            student.setName(RandomUtil.getName());
            student.setGender(RandomUtil.getGender());
            student.setBirthday(RandomUtil.getBirthday());
            student.setPhone(RandomUtil.getPhone());
            student.setWxs(RandomUtil.getWxs());
            student.setGroup(i / 4 + 1);
            list.add(student);
        }
        for (Student student : list) {
            System.out.println(student);
        }
        //tongjiNanNv(list);
        //tongji00(list);
        //tongjiname2(list);
        //tongjiZhang(list);
        // tongji66(list);
        //tongji68(list);
       // tongjiWx(list);
    }

    //男生和女生各自有多少人？    可以
    public static void tongjiNanNv(ArrayList<Student> list) {

        long nanCount = list.stream().filter(s -> s.getGender().equals("男")).count();
        long nvCount = list.stream().filter(s -> s.getGender().equals("女")).count();
        System.out.println("男:" + nanCount);
        System.out.println("女:" + nvCount);


    }

    //00后有多少人？    可以
    public static void tongji00(ArrayList<Student> list) {
        long count = list.stream().filter(s -> s.getBirthday().getYear() >= 2000).count();
        System.out.println("00后" + count);


    }

    //名字长度是2的学生有多少人？ 可以
    //名字长度是3的学生有多少人？ 可以
    public static void tongjiname2(ArrayList<Student> list) {
        long count2 = list.stream().filter(s -> s.getName().length() == 2).count();
        long count3 = list.stream().filter(s -> s.getName().length() == 3).count();
        System.out.println("名字长度是2的" + count2);
        System.out.println("名字长度是3的" + count3);
    }

    //姓张的同学有多少人？  可以
    public static void tongjiZhang(ArrayList<Student> list) {
        long count = list.stream().filter(s -> s.getName().startsWith("张")).count();
        System.out.println("姓张的" + count);


    }

    //手机号中至少包含2个6的有哪些？  可以
    public static void tongji66(ArrayList<Student> list) {
        long count = list.stream().filter(s -> {
            int count6 = 0;
            String phone = s.getPhone();
            char[] chars = phone.toCharArray();
            for (char c : chars) {
                if (c == '6') {
                    count6++;
                }
            }
            return count6 >= 2;
        }).count();
        System.out.println("手机号有两个6 " + count);

    }
    //手机号中至少包含1个6和1个8的有哪些？  可以
    public static void tongji68(ArrayList<Student> list) {
        long count = list.stream().filter(s -> s.getPhone().contains("6")&& s.getPhone().contains("8")).count();
        System.out.println("手机号有6有8" + count);
    }
    //有2个的微信号的人个数  可以
    //有1个的微信号的人个数   可以
    public static void tongjiWx(ArrayList<Student> list) {
        long count1 = list.stream().filter(s -> s.getWxs().size()==1).count();
        long count2 = list.stream().filter(s -> s.getWxs().size()==2).count();
        System.out.println("一个微信号的" + count1);
        System.out.println("两个个微信号的" + count2);

    }
}
